package leetcode.code1337;

import java.util.PriorityQueue;


/**
 * 小根堆 + 数组 相对于 @see Solution 内存降低
 * @author Max
 * @date 2021年8月26日
 * @description
 */
public class Solution2 extends Solution1337 {

	@Override
	public int[] kWeakestRows(int[][] mat, int k) {
		// 0 下标， 1战斗力
		PriorityQueue<int[]> p = new PriorityQueue<>((m, n) -> {
			if ((m[1] < n[1]) || (m[1] == n[1] && m[0] < n[0]))
				return -1;
			return 1;
		});
		for (int i = 0; i < mat.length; i++) {
			for (int j = 1; j < mat[0].length; j++) {
				mat[i][0] += mat[i][j];
			}
			p.add(new int[] { i, mat[i][0] });
		}
		int[] result = new int[k];
		for (int i = 0; i < k; i++) {
			result[i] = p.poll()[0];
		}
		return result;
	}

	public static void main(String[] args) {
		Solution2 so = new Solution2();
		so.debug1();
		so.debug2();
	}

}
